<?php
/**
 * Error controller
 *
 * Default controller for errors handling.
 * 
 * @uses       Zend_Controller_Action
 * @package    FireFeed
 * @subpackage Controller
 */
class ErrorController extends Zend_Controller_Action
{

    public function errorAction()
    {
        // Disable the layout
        $this->_helper->layout->disableLayout();
    	
    	$errors = $this->_getParam('error_handler');
        
        switch ($errors->type) { 
            case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_CONTROLLER:
            case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ACTION:
        
                // 404 error -- controller or action not found
                $this->getResponse()->setHttpResponseCode(404);
                $this->view->message = 'Page not found';
                break;
            
            default:

            	// application error 
                $this->getResponse()->setHttpResponseCode(500);
                $this->view->message = 'Application error';
                break;
        }
        
        $this->view->exception = $errors->exception;
        $this->view->request   = $errors->request;
    }
    
    /**
     * Error management for acces denied messages from ACL
     * 
     * @return void
     */
    public function notallowedAction()
    {
    	// Disable the layout
        $this->_helper->layout->disableLayout();
    	
    	// 403 error -- access forbidden
        $this->getResponse()->setHttpResponseCode(403);
    	$this->view->message = "You are not allowed to access this resource";
    }
}

